ARexx (30/55)

From:Andreas Mixich
Date:24 May 2000 at 21:31:11
Subject:strange GoldED macro behaviour

Hello,

I just updated my test macro for my GoldED ARexx setup. It worked for years,
now I added features and earn bugs :-)

/**/

OPTIONS RESULTS /* enable return codes */

if (LEFT(ADDRESS(), 6) ~= "GOLDED") then /* not started by GoldEd ? */
address 'GOLDED.1'

'LOCK CURRENT RELEASE 4' /* lock GUI, gain access */
OPTIONS FAILAT 6 /* ignore warnings */
SIGNAL ON SYNTAX /* ensure clean exit */
SIGNAL ON ERROR

***2* see text in mail below

argstemplate = "MODE"

/* add the needed libraries */

IF ~SHOW('LIBRARIES','rexxdossupport.library') THEN
CALL ADDLIB('rexxdossupport.library',0,-30,0)

'QUERY DOC VAR OLDNAME'
'QUERY FILE VAR FILENAME'

'QUERY ABAK VAR AUTOBACK'
'QUERY BACKUP VAR BACKEN'
'SET ABAK 0'
'SET BACKUP 0'

'QUERY AREXX_MAKE_TEST VAR TEST'
'QUERY AREXX_MAKE_COMPILE VAR COMPILE'
'QUERY AREXX_MAKE_MAKE VAR MAKE'
'QUERY AREXX_MAKE_ISCOM VAR ISCOM'
'QUERY AREXX_MAKE_ISFUNC VAR ISFUNC'

'QUERY AREXX_TRACE_ALL VAR TR_ALL'
'QUERY AREXX_TRACE_BACKGROUND VAR TR_BACKROUND'
'QUERY AREXX_TRACE_COMMANDS VAR TR_COMMANDS'
'QUERY AREXX_TRACE_ERRORS VAR TR_ERRORS'
'QUERY AREXX_TRACE_INTERMEDIATES VAR TR_INTER'
'QUERY AREXX_TRACE_LABELS VAR TR_LABELS'
'QUERY AREXX_TRACE_NORMAL VAR TR_NORMAL'
'QUERY AREXX_TRACE_RESULTS VAR TR_RESULTS'
'QUERY AREXX_TRACE_SCAN VAR TR_SCAN'

'QUERY AREXX_TRACE_INTERACTIVE VAR TR_INTERACTIVE'
'QUERY AREXX_TRACE_INHIBIT VAR TR_INHIBIT'

SELECT
WHEN TR_ALL = TRUE THEN tracemode = "A"
WHEN TR_BACKGROUND = TRUE THEN tracemode = "B"
WHEN TR_COMMANDS = TRUE THEN tracemode = "C"
WHEN TR_ERRORS = TRUE THEN tracemode = "E"
WHEN TR_INTER = TRUE THEN tracemode = "I"
WHEN TR_LABELS = TRUE THEN tracemode = "L"
WHEN TR_NORMAL = TRUE THEN tracemode = "N"
WHEN TR_RESULTS = TRUE THEN tracemode = "R"
WHEN TR_SCAN = TRUE THEN tracemode = "S"
OTHERWISE tracemode = "O"
END

IF TR_INHIBIT = TRUE THEN tracemode = Insert(tracemode,'!',1)
IF TR_INTERACTIVE = TRUE THEN tracemode = Insert(tracemode,'?',1)

SELECT
WHEN test = TRUE THEN
DO
'REQUEST STRING TITLE = "Testing..." BODY = "Please enter arguments empty string if none are needed" VAR ARGUM'
IF RC = 5 THEN
SIGNAL CLEANUP
'SAVE ALL EXPORT NAME "t:'||filename||'"'
CALL backupon

com = Strip('t:'||filename||' '||argum)
CALL Trace(tracemode)
ADDRESS COMMAND 'rx '||com
END

[...]

OTHERWISE
NOP
END

CLEANUP:
ADDRESS GOLDED.1
IF arexx_make_compile = TRUE THEN CALL Close(f)
CALL backupon
'UNLOCK'
CALL Trace(OFF)
EXIT

backupon:
'SET ABAK '||AUTOBACK
'SET BACKUP '||BACKEN
RETURN

SYNTAX:
ERROR:
FAILURE:
ADDRESS GOLDED.1
CALL backupon ***2* see mailtest below
SAY "Sorry, error line" SIGL ":" ERRORTEXT(RC) ":-("
'UNLOCK'
CALL Trace(OFF)
EXIT
---------------------------------------------------------------EOF

**** so, there, where I put the stars, if I select "CANCEL" on the GED
requester, I get an undiagnosed error ?! But only if SIGNAL ON FAILURE
is set ! And the strange thing is, that the result of the requester, if
cancelled is RC=5, but OPTIONS FAILAT 6, so the RC=5 should not cause
problems.

In former versions of the script it worked, though there I did not set
SIGNAL ON FAILURE.

If, however I do not set SIGNAL ON FAILURE, and cancel the requester I get an undiagnosed error in the line with ***2*, where I call backupon:



Good Bye, Andreas
If at first you don't succeed, quit; don't be a nut about success.

------------------------------------------------------------------------
Failed tests, classes skipped, forgotten locker combinations.
Remember the good 'ol days
http://click.egroups.com/1/4053/8/_/50156/_/959114706/
------------------------------------------------------------------------

ARexx mailing list - No flames, no overquoting, no crossposting. Unsubscribe: Blank mail to mailto:arexx-unsubscribe@onelist.com